home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection Student Program / ADC Tools Sampler CD Disk 3 1999.iso / Cool Demos, SDKs, & Tools / Demos⁄Tools⁄Offers / Alpha ƒ / Help / Diff Help < prev    next >
Text File  |  1997-11-26  |  11KB  |  267 lines

  1. ## -*-Tcl-*-
  2.  # ###################################################################
  3.  #  Alpha - new Tcl folder configuration
  4.  # 
  5.  #  FILE: "Diff Help"
  6.  #                                    created: 4/9/94 {4:48:19 pm} 
  7.  #                                last update: 26/11/97 {1:00:45 pm} 
  8.  #  Author: Vince Darley
  9.  #  E-mail: <darley@fas.harvard.edu>
  10.  #    mail: Division of Engineering and Applied Sciences, Harvard University
  11.  #          Oxford Street, Cambridge MA 02138, USA
  12.  #     www: <http://www.fas.harvard.edu/~darley/>
  13.  #  
  14.  # ###################################################################
  15.  ##
  16.  
  17. New: Diff mode now copes with context-sensitive diffs (using the -C N) option.
  18.  
  19. The diff mode for Alpha has recently been rewritten.  It allows powerful 
  20. side-by-side file comparison, including the ability to patch differences
  21. back and forth between the two files.  The main new feature is that
  22. making such patches does not mess up Alpha's understanding of where
  23. subsequent patches should be inserted.
  24.  
  25. Do not attempt to perform more than one diff at the same time.  The arrays
  26. which are used to store information will probably conflict.  This will
  27. ultimately be fixed.
  28.  
  29. The main feature which is lacking is an 'unpatch' feature.  You will
  30. have to make do with Alpha's 'Undo' facility for the moment. (Basically
  31. the problem is if you patch section 'a', then patch section 'b', you
  32. can't undo 'a' without undoing 'b' first).
  33.  
  34. If you find Diff mode very slow, disable the 'useMarksDontSwitch' flag.
  35.  
  36. #===============================================================================
  37.  
  38. Basic usage:
  39.  
  40. Use compare 'windows' 'files…' or 'directories…' to compare two 
  41. things.  Use the cursor keys and return/enter (unless you've set the 
  42. synchronise flag in which case return/enter aren't necessary) to move
  43. around and compare the files.
  44.  
  45. Use ctrl-left and ctrl-right to patch changes from one window to the
  46. other.
  47.  
  48. You can rerun the diff using the menu.
  49.  
  50. Advanced usage:
  51.  
  52. Open any .diff file, locate either the left or right file and you can
  53. patch in changes from the diff window using ctrl-left or ctrl-right
  54. as appropriate.
  55.  
  56. Note: the diff server is 68k so if someone could recompile it for PPC, that 
  57. would speed things up a lot.
  58.  
  59. #===============================================================================
  60.  
  61. The unix man entry for Diff follows:
  62.  
  63. DIFF(1)                  USER COMMANDS                    DIFF(1)
  64.  
  65.  
  66.  
  67. NAME
  68.      diff - display line-by-line  differences  between  pairs  of
  69.      text files
  70.  
  71. SYNOPSIS
  72.      diff [ -bitw ] [ -c [ # ] | -e | -f | -n | -h  ]   filename1
  73.      filename2
  74.      diff [ -bitw ] [ -Dstring ]  filename1 filename2
  75.      diff [ -bitw ] [ -c [ # ] | -e | -f | -n | -h ] [ -l ] [  -r
  76.      ] [ -s ] [ -Sname ]  directory1 directory2
  77.  
  78. DESCRIPTION
  79.      diff is a differential file comparator.  When run on regular
  80.      files,  and  when  comparing  text  files that differ during
  81.      directory comparison  (see  the  notes  below  on  comparing
  82.      directories),  diff  tells what lines must be changed in the
  83.      files to bring them into agreement.   Except  in  rare  cir-
  84.      cumstances,  diff finds a smallest sufficient set of differ-
  85.      ences.  If neither filename1 nor filename2 is  a  directory,
  86.      either may be given as `-', in which case the standard input
  87.      is used.  If filename1 is a directory, a file in that direc-
  88.      tory whose filename is the same as the filename of filename2
  89.      is used (and vice versa).
  90.  
  91.      There are several options for  output  format;  the  default
  92.      output format contains lines of these forms:
  93.  
  94.           n1 a n3,n4
  95.           n1,n2 d n3
  96.           n1,n2 c n3,n4
  97.  
  98.      These lines resemble ed(1)  commands  to  convert  filename1
  99.      into  filename2.   The  numbers after the letters pertain to
  100.      filename2.  In fact, by exchanging a for d and reading back-
  101.      ward one may ascertain equally how to convert filename2 into
  102.      filename1.  As in ed(1), identical pairs, where n1 =  n2  or
  103.      n3 = n4, are abbreviated as a single number.
  104.  
  105.      Following each of these lines come all the  lines  that  are
  106.      affected  in  the  first  file  flagged by `<', then all the
  107.      lines that are affected in the second file flagged by `>'.
  108.  
  109.      If both arguments are directories, diff sorts  the  contents
  110.      of  the  directories by name, and then runs the regular file
  111.      diff program as described above on text files which are dif-
  112.      ferent.   Binary  files which differ, common subdirectories,
  113.      and files which appear in only one directory are listed.
  114.  
  115. OPTIONS
  116.      -b   Ignore trailing blanks (SPACE and TAB  characters)  and
  117.           treat all other strings of blanks as equivalent.
  118.  
  119.      -i   Ignore the case of letters; for example, `A' will  com-
  120.           pare equal to `a'.
  121.  
  122.      -t   Expand TAB characters in output lines.   Normal  or  -c
  123.           output  adds  character(s)  to  the  front of each line
  124.           which may alter the indentation of the original  source
  125.           lines  and  make the output listing difficult to inter-
  126.           pret.  This option will preserve the original  source's
  127.           indentation.
  128.  
  129.      -w   Ignore all blanks (SPACE and TAB characters); for exam-
  130.           ple, `if ( a == b )' will compare equal to `if(a==b)'.
  131.  
  132.      The following four options are mutually exclusive:
  133.  
  134.      -c[#]
  135.           Produce a listing of differences with lines of context.
  136.           The default is to present 3 lines of context and may be
  137.           changed, (to 10, for example), by -c10.   With  -c  the
  138.           output format is modified slightly:  output begins with
  139.           identification of the files involved and their creation
  140.           dates,  then  each change is separated by a line with a
  141.           dozen *s.  The lines removed from filename1 are  marked
  142.           with  `-  ';  those added to filename2 are marked `+ '.
  143.           Lines which are changed from one file to the other  are
  144.           marked in both files with `! '.
  145.  
  146.           Changes which lie within <context> lines of each  other
  147.           are  grouped together on output.  This is a change from
  148.           the previous `diff -c' but the resulting output is usu-
  149.           ally much easier to interpret.
  150.  
  151.      -e   Produce a script of a, c, and d commands for the editor
  152.           ed, which will recreate filename2 from filename1.
  153.  
  154.           In connection with -e, the following shell program  may
  155.           help  maintain  multiple  versions  of a file.  Only an
  156.           ancestral file ($1) and a chain  of  version-to-version
  157.           ed scripts ($2,$3,...) made by diff need be on hand.  A
  158.           `latest version' appears on the standard output.
  159.  
  160.                (shift; cat $*; echo '1,$p') | ed - $1
  161.  
  162.           Extra commands are added to the output  when  comparing
  163.           directories  with -e, so that the result is a sh script
  164.           for converting text files which are common to  the  two
  165.           directories  from  their  state  in directory1 to their
  166.           state in directory2.
  167.  
  168.      -f   Produce a script similar to that of -e, not useful with
  169.           ed, which is in the opposite order.
  170.  
  171.      -n   Produce a script similar to that  of  -e,  but  in  the
  172.           opposite  order  and  with  a count of changed lines on
  173.           each insert or delete command.
  174.  
  175.      -h   Do a  fast,  half-hearted  job.   It  works  only  when
  176.           changed  stretches  are  short  and well separated, but
  177.           does work on files of unlimited length.
  178.  
  179.      Options for the second form of diff are as follows:
  180.  
  181.      -Dstring
  182.           Create a merged version of filename1 and  filename2  on
  183.           the  standard  output,  with  C  preprocessor  controls
  184.           included so that a compilation of  the  result  without
  185.           defining  string  is equivalent to compiling filename1,
  186.           while defining string will yield filename2.
  187.  
  188.      Options when comparing directories are:
  189.  
  190.      -l   Long output  format;  each  text  file  diff  is  piped
  191.           through  pr(1V)  to  paginate it, other differences are
  192.           remembered and summarized after all text  file  differ-
  193.           ences are reported.
  194.  
  195.      -r   Apply diff recursively to common subdirectories encoun-
  196.           tered.
  197.  
  198.      -s   Report files which are the same,  which  are  otherwise
  199.           not mentioned.
  200.  
  201.      -Sname
  202.           Start a directory diff in the  middle,  beginning  with
  203.           file name.
  204.  
  205. ENVIRONMENT
  206.      The environment variables  LC_CTYPE,  LANG,  and  LC_default
  207.      control  the  character  classification throughout diff.  On
  208.      entry to diff, these environment variables  are  checked  in
  209.      the following order: LC_CTYPE, LANG, and LC_default.  When a
  210.      valid value is found, remaining  environment  variables  for
  211.      character  classification  are  ignored.  For example, a new
  212.      setting for LANG does not override the current valid charac-
  213.      ter  classification  rules  of  LC_CTYPE.   When none of the
  214.      values is valid, the shell character classification defaults
  215.      to the POSIX.1 "C" locale.
  216.  
  217. FILES
  218.      /tmp/d?????
  219.      /usr/lib/diffh      for -h
  220.  
  221. SEE ALSO
  222.      cc(1V), cmp(1), comm(1), cpp(1), diff3(1V),  ed(1),  pr(1V),
  223.      locale(5), iso_8859_1(7)
  224.  
  225. DIAGNOSTICS
  226.      Exit status is 0 for no differences, 1 for some differences,
  227.      2 for trouble.
  228.  
  229.      Missing newline at end of fileX
  230.           Indicates that the last line of file X did not  have  a
  231.           NEWLINE.  If  the  lines  are  different,  they will be
  232.           flagged and output, although the output  will  seem  to
  233.           indicate they are the same.
  234.  
  235. BUGS
  236.      Editing scripts produced under the -e or -f option are naive
  237.      about creating lines consisting of a single `.'.
  238.  
  239.      When comparing directories with the -b, -w,  or  -i  options
  240.      specified,  diff first compares the files (as in cmp(1), and
  241.      then runs the regular diff algorithm if they are not  equal.
  242.      This  may  cause  a  small  amount of spurious output if the
  243.      files then turn out to be identical because the only differ-
  244.      ences are insignificant blank string or case differences.
  245.  
  246.      The -D option ignores existing preprocessor controls in  the
  247.      source  files,  and  can generate #ifdefs's with overlapping
  248.      scope.  The output should be checked by hand, or run through
  249.      `cc  -E'  (see  cc(1V))  and  then  diffed with the original
  250.      source files.  Discrepancies revealed  should  be  corrected
  251.      before compilation.
  252.  
  253.  
  254. Enter Unix command line:
  255.  
  256. Usage: diff [-#] [-abBcdefhHilnNprstTuvw] [-C lines] [-F regexp] [-I regexp]
  257.        [-L label [-L label]] [-S file] [-D symbol] [+ignore-blank-lines]
  258.        [+context[=lines]] [+unified[=lines]] [+ifdef=symbol]
  259.        [+show-function-line=regexp]
  260.        [+speed-large-files] [+ignore-matching-lines=regexp] [+new-file]
  261.        [+initial-tab] [+starting-file=file] [+text] [+all-text] [+ascii]
  262.        [+minimal] [+ignore-space-change] [+ed] [+reversed-ed] [+ignore-case]
  263.        [+print] [+rcs] [+show-c-function] [+binary] [+brief] [+recursive]
  264.        [+report-identical-files] [+expand-tabs] [+ignore-all-space]
  265.        [+file-label=label [+file-label=label]] [+version] path1 path2
  266.  
  267.